From: Christoph Lohmann <20h@r-36.net>
Date: Tue, 1 Jan 2013 12:15:43 +0000 (+0100)
Subject: A fix for the XopenIM() errors.
X-Git-Url: https://git.owens.tech/assets/lich_lifts_title_slice.png%20%22Lich%20Lifts%22/assets/lich_lifts_title_slice.png%20%22Lich%20Lifts%22/git?a=commitdiff_plain;h=4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c;p=st.git

A fix for the XopenIM() errors.
---

diff --git a/st.c b/st.c
index 7ceed75..163f160 100644
--- a/st.c
+++ b/st.c
@@ -2503,9 +2503,17 @@ xinit(void) {
 	xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap);
 
 	/* input methods */
-	xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL);
-	if(xw.xim == NULL)
-		die("XOpenIM failed. Could not open input device.\n");
+	if((xw.xim =  XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) {
+		XSetLocaleModifiers("@im=local");
+		if((xw.xim =  XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) {
+			XSetLocaleModifiers("@im=");
+			if((xw.xim = XOpenIM(xw.dpy,
+					NULL, NULL, NULL)) == NULL) {
+				die("XOpenIM failed. Could not open input"
+					" device.\n");
+			}
+		}
+	}
 	xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing
 					   | XIMStatusNothing, XNClientWindow, xw.win,
 					   XNFocusWindow, xw.win, NULL);